package com.yunlan.materia.service;

import com.yunlan.materia.entity.MateriaMedicaBook;
import com.yunlan.materia.request.DeleteDisableBookRequest;
import com.yunlan.materia.request.MateriaMedicaBookRequest;
import com.yunlan.materia.request.NormalAbleBookRequest;
import com.yunlan.materia.request.QueryBookRequest;
import com.yunlan.materia.response.MateriaMedicaBookResponse;

import java.util.List;

/**
 * @author 云澜
 * @date 2025/9/17
 * @ApiNote
 */
public interface MateriaMedicaBookService {

    /**
     * 添加新书
     * @param request 添加新书的参数
     * @return 打印结果
     */
    MateriaMedicaBook addBook(MateriaMedicaBookRequest request);

    /**
     * 删除或禁用书
     * @param request 删除或禁用书的参数
     * @return 打印结果
     */
    int deleteDisableBook(DeleteDisableBookRequest request);

    /**
     * 恢复正常和启用
     * @param request 恢复正常和启用的参数
     * @return 打印结果
     */
    int normalAbleBook(NormalAbleBookRequest request);

    /**
     * 根据参数查找书
     * @return 打印结果
     */
    List<MateriaMedicaBookResponse> queryBookList(QueryBookRequest request);

    /**
     * 按照书名精确检索
     * @param bookName
     * @return
     */
    MateriaMedicaBook queryBookByName(String bookName);

    /**
     * 根据id查询book
     * @param id
     * @return
     */
    MateriaMedicaBook queryBookById(Long id);

    /**
     * 根据id删除书
     * @param id
     * @return
     */
    int deleteBookById(Long id,String remark,String operator);

    /**
     * 根据id禁用书
     * @param id
     * @return
     */
    int disableBookById(Long id,String remark,String operator);

    /**
     * 根据id启用书
     * @param id
     * @param remark
     * @param operator
     * @return
     */
    int ableBookById(Long id,String remark,String operator);


}
